const Router = require('koa-router')()
const mongoose = require('mongoose')
const jwt = require('jsonwebtoken')

const secret = 'secret' // 令牌的盐
Router.post('/', async (cxt) => {
  // console.log('情趣过了')

  // 这里要加request 非常坑的 bodyParser只会在requset的这个上面加做body修改 不会同步到ctx里
  // console.log(cxt.request.body,'nihod')
  // cxt.body=cxt.request.body
  // const name = cxt.request.body.name
  const phone = cxt.request.body.phone
  const password = cxt.request.body.password
  const UserSchemaUnique = mongoose.model('bee')
  // cxt.body = {
  //   code: 200,
  //   name
  // }
  // 看是否存在该用户
  await UserSchemaUnique.findOne({ phone }).exec().then(
    async res => {
      // res是查询到的结果表
      // console.log(res)
      // const user = new UserSchemaUnique()
      // 存在后看密码是否一样
      // console.log(password, res.password)
      // const ismatch = await user.compare(password, res.password)
      // 这里的ismatch是promise里resolve里的ismatch 不是直接的结果 是比对后的结果
      // 登录成功后将cookie和 和token都发送给客户端 以及用户的基本信息发送给客户端
      if (password && password === res.password) {
        cxt.session.phone = phone // 将phone存入session里
        const token = jwt.sign({ phone }, secret,
          { expiresIn: '1h' } // 24小时过期
        )
        const userInfo = { ...res._doc }
        // console.log(res._doc)
        delete userInfo.password
        cxt.body = {
          code: 200,
          msg: '用户登录成功',
          token,
          userInfo
        }
      } else {
        cxt.body = {
          code: 500,
          msg: '用户密码错误'
        }
      }

      // function (ismatch) {
      //   console.log(ismatch)
      //   if (ismatch) {
      //     cxt.body = {
      //       code: 200,
      //       msg: '用户登录成功'
      //     }
      //   } else {
      //     cxt.body = {
      //       code: 500,
      //       msg: '用户密码错误'
      //     }
      //   }
      // }

      // ).catch(err => {
      //   cxt.body = {
      //     code: 501,
      //     msg: '用户密码比对出现问题',
      //     err
      //   }
      // })
    }
    // 没有查询到 即用户名不存在

  ).catch((err) => {
    console.log(err)
    cxt.body = {
      code: 502,
      err: err,
      msg: '用户名不存在'
    }
    // cxt.redirect('/admin/register')
  })

  // console.log(cxt.request.body)
})

module.exports = Router
